1. Field of the Invention
The present invention relates to a method for generating a cryptographic key in a system-on-a-chip having a hardware-programmable logic unit.
2. Description of the Related Art
A single-chip system or system-on-a-chip (SoC) is an integrated circuit (IC) in which a plurality of functions of a corresponding system are integrated onto a single chip (die). SoCs of this kind can encompass, for example, a hardware-programmable logic unit (programmable logic section, PL) and a processor unit (processor system section, PS).
A processor unit of this kind can encompass an appropriate processor or processor core, or a multicore processor. Multicore processors encompasses multiple (at least two) processor cores. A processor core usually encompasses an arithmetic logic unit (ALU) that represents the actual electronic calculation mechanism for executing tasks, programs, calculation instructions, etc., and also a local memory.
The hardware of a hardware-programmable logic unit is not unchangeable, but instead can be modified at any time. Hardware-programmable logic units can usually be reprogrammed or reconfigured on the hardware level using a hardware description language (HDL). Different functionalities can thereby be assigned to a hardware-programmable logic unit. In order to reconfigure a hardware-programmable logic unit, individual circuit regions of the hardware-programmable logic unit can be differently interconnected. A configuration of hardware elements (e.g. lookup tables (LUT), multiplexers (MUX), interconnections between logic instances (e.g. programmable interconnect points) and/or global resources such as a clock, Vcc, GND) in the individual circuit regions can be modified in this context. Hardware-programmable logic units of this kind can be embodied in particular as so-called field programmable gate arrays (FPGAs).
Cryptographic keys for encoding data or for secure exchange of data or secure communication among different calculation units can be generated using a so-called physical unclonable function (PUF). When a physical unclonable function (PUF) of this kind is embodied in a particular SoC, a cryptographic key that is characteristic of that particular SoC can be generated.
Physical unclonable functions (PUFs) of this kind are functions that are based on physical characteristics of the SoC. A PUF, for example, evaluates production fluctuations in a chip or in the SoC, and generates an individual chip signal therefrom. An individual chip signal of this kind is a result of the PUF executed on the SoC. This individual chip signal varies greatly between different chips or between different SoCs. This individual chip signal can generally be used to authenticate the SoC or to generate (cryptographic) keys.
Implementing a PUF in an SoC usually entails considerable complexity and high cost. Usually a specific circuit region of the hardware-programmable logic unit of the SoC can be reserved for the PUF and correspondingly configured. A plurality of hardware resources of the hardware-programmable logic unit can usually be interconnected for this purpose.
The circuit region can usually be used exclusively for this particular PUF. The result, however, is that a large proportion of the hardware-programmable logic unit of the SoC, which is used exclusively for this particular PUF, is lost. Hardware resources of the SoC therefore cannot be exploited to their full extent.
It is therefore desirable to furnish an improved capability for generating cryptographic keys in a system-on-a-chip having a hardware-programmable logic unit.